(* Content-type: application/vnd.wolfram.mathematica *)

(*** Wolfram Notebook File ***)
(* http://www.wolfram.com/nb *)

(* CreatedBy='Mathematica 11.0' *)

(*CacheID: 234*)
(* Internal cache information:
NotebookFileLineBreakTest
NotebookFileLineBreakTest
NotebookDataPosition[       158,          7]
NotebookDataLength[     57661,       1428]
NotebookOptionsPosition[     55582,       1381]
NotebookOutlinePosition[     56123,       1402]
CellTagsIndexPosition[     56080,       1399]
WindowFrame->Normal*)

(* Beginning of Notebook Content *)
Notebook[{

Cell[CellGroupData[{
Cell["\:6295\:5f71", "Chapter",ExpressionUUID->"df91bc7e-fc03-4383-84e1-2ad57500f54a"],

Cell[BoxData[
 StyleBox[
  RowBox[{
   RowBox[{"Clear", "[", "\"\<Global`*\>\"", "]"}], ";"}], "Code"]], "Code",
 CellLabel->"In[1]:=",ExpressionUUID->"6b0fe850-07f4-4854-8401-247d0e833a1e"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{
  RowBox[{"(*", 
   RowBox[{
   "\:8fd9\:5c31\:7528\:6807\:51c6\:76f8\:673a\:76f4\:63a5\:505a\:4e86", 
    "\:ff0c", "\:4e0b\:9762\:662f\:573a\:666f\:6a21\:578b"}], "*)"}], "\n", 
  RowBox[{"Manipulate", "[", "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"Module", "[", "\[IndentingNewLine]", 
     RowBox[{
      RowBox[{"{", "\[IndentingNewLine]", 
       RowBox[{
        RowBox[{"p1", "=", 
         RowBox[{"{", 
          RowBox[{
           RowBox[{"-", "0.5"}], ",", 
           RowBox[{"-", "0.5"}], ",", 
           RowBox[{
            RowBox[{"-", "2"}], "+", "1.5"}]}], "}"}]}], ",", 
        RowBox[{"p2", "=", 
         RowBox[{"{", 
          RowBox[{"0.5", ",", 
           RowBox[{"-", "0.5"}], ",", 
           RowBox[{
            RowBox[{"-", "2"}], "+", "1.5"}]}], "}"}]}], ",", 
        RowBox[{"p3", "=", 
         RowBox[{"{", 
          RowBox[{"0.5", ",", "0.5", ",", 
           RowBox[{
            RowBox[{"-", "2"}], "+", "1.5"}]}], "}"}]}], ",", 
        RowBox[{"p4", "=", 
         RowBox[{"{", 
          RowBox[{
           RowBox[{"-", "0.5"}], ",", "0.5", ",", 
           RowBox[{
            RowBox[{"-", "2"}], "+", "1.5"}]}], "}"}]}], ",", 
        "\[IndentingNewLine]", 
        RowBox[{"p5", "=", 
         RowBox[{"{", 
          RowBox[{
           RowBox[{"-", "0.5"}], ",", 
           RowBox[{"-", "0.5"}], ",", 
           RowBox[{
            RowBox[{"-", "1"}], "+", "1.5"}]}], "}"}]}], ",", 
        RowBox[{"p6", "=", 
         RowBox[{"{", 
          RowBox[{"0.5", ",", 
           RowBox[{"-", "0.5"}], ",", 
           RowBox[{
            RowBox[{"-", "1"}], "+", "1.5"}]}], "}"}]}], ",", 
        RowBox[{"p7", "=", 
         RowBox[{"{", 
          RowBox[{"0.5", ",", "0.5", ",", 
           RowBox[{
            RowBox[{"-", "1"}], "+", "1.5"}]}], "}"}]}], ",", 
        RowBox[{"p8", "=", 
         RowBox[{"{", 
          RowBox[{
           RowBox[{"-", "0.5"}], ",", "0.5", ",", 
           RowBox[{
            RowBox[{"-", "1"}], "+", "1.5"}]}], "}"}]}], ",", 
        RowBox[{"rotate", "=", " ", 
         RowBox[{
          RowBox[{"RotationMatrix", "[", 
           RowBox[{
            RowBox[{"rotateY", " ", "Degree"}], ",", 
            RowBox[{"{", 
             RowBox[{"0", ",", "1", ",", "0"}], "}"}]}], "]"}], ".", 
          RowBox[{"RotationMatrix", "[", 
           RowBox[{
            RowBox[{"rotateX", " ", "Degree"}], ",", 
            RowBox[{"{", 
             RowBox[{"1", ",", "0", ",", "0"}], "}"}]}], "]"}]}]}]}], 
       "\[IndentingNewLine]", "}"}], ",", "\[IndentingNewLine]", 
      RowBox[{
       RowBox[{"p11", " ", "=", 
        RowBox[{"rotate", ".", "p1"}]}], ";", 
       RowBox[{"p21", " ", "=", 
        RowBox[{"rotate", ".", "p2"}]}], ";", 
       RowBox[{"p31", " ", "=", 
        RowBox[{"rotate", ".", "p3"}]}], ";", 
       RowBox[{"p41", " ", "=", 
        RowBox[{"rotate", ".", "p4"}]}], ";", "\[IndentingNewLine]", 
       RowBox[{"p51", " ", "=", 
        RowBox[{"rotate", ".", "p5"}]}], ";", 
       RowBox[{"p61", " ", "=", 
        RowBox[{"rotate", ".", "p6"}]}], ";", 
       RowBox[{"p71", " ", "=", 
        RowBox[{"rotate", ".", "p7"}]}], ";", 
       RowBox[{"p81", " ", "=", 
        RowBox[{"rotate", ".", "p8"}]}], ";", 
       StyleBox["\n", "Code"], 
       RowBox[{"Graphics3D", "[", 
        RowBox[{
         RowBox[{"{", "\[IndentingNewLine]", 
          RowBox[{"(*", 
           RowBox[{
           "\:628a\:7acb\:65b9\:4f53\:753b\:51fa\:6765\:81f3\:5c11\:9700\:8981\
4\:7b14", "\:ff0c", "\:6839\:636e\:56fe\:8bba", "\:ff0c", 
            RowBox[{"\:7b14\:753b", "=", 
             RowBox[{"\:5947\:6570\:70b9\:4e2a\:6570", "/", "2"}]}], "\:ff0c", 
            RowBox[{
            "8", "\:4e2a\:9876\:70b9\:6240\:4ee5\:75284\:6761\:7ebf\:6bb5"}]}]\
, "*)"}], "\[IndentingNewLine]", 
          RowBox[{"Red", ",", 
           RowBox[{"Line", "[", 
            RowBox[{"{", 
             RowBox[{"p5", ",", "p1", ",", "p2", ",", "p3"}], "}"}], "]"}], 
           ",", 
           RowBox[{"Line", "[", 
            RowBox[{"{", 
             RowBox[{"p2", ",", "p6", ",", "p7", ",", "p8"}], "}"}], "]"}], 
           ",", 
           RowBox[{"Line", "[", 
            RowBox[{"{", 
             RowBox[{"p1", ",", "p4", ",", "p3", ",", "p7"}], "}"}], "]"}], 
           ",", 
           RowBox[{"Line", "[", 
            RowBox[{"{", 
             RowBox[{"p4", ",", "p8", ",", "p5", ",", "p6"}], "}"}], "]"}], 
           ",", "\[IndentingNewLine]", "Green", ",", 
           RowBox[{"Line", "[", 
            RowBox[{"{", 
             RowBox[{"p51", ",", "p11", ",", "p21", ",", "p31"}], "}"}], 
            "]"}], ",", 
           RowBox[{"Line", "[", 
            RowBox[{"{", 
             RowBox[{"p21", ",", "p61", ",", "p71", ",", "p81"}], "}"}], 
            "]"}], ",", 
           RowBox[{"Line", "[", 
            RowBox[{"{", 
             RowBox[{"p11", ",", "p41", ",", "p31", ",", "p71"}], "}"}], 
            "]"}], ",", 
           RowBox[{"Line", "[", 
            RowBox[{"{", 
             RowBox[{"p41", ",", "p81", ",", "p51", ",", "p61"}], "}"}], 
            "]"}], ",", "\[IndentingNewLine]", 
           RowBox[{"(*", 
            RowBox[{
             RowBox[{"\:7eff\:8272\:662f\:76f8\:673a\:671d\:5411", 
              RowBox[{"(", 
               RowBox[{"-", "z"}], ")"}]}], "\:ff0c", 
             RowBox[{"\:84dd\:8272\:662f\:5411\:4e0a\:65b9\:5411", 
              RowBox[{"(", "y", ")"}]}]}], "*)"}], "\[IndentingNewLine]", 
           "Green", ",", 
           RowBox[{"Arrow", "[", 
            RowBox[{"{", 
             RowBox[{
              RowBox[{"{", 
               RowBox[{"0", ",", "0", ",", "0"}], "}"}], ",", 
              RowBox[{"{", 
               RowBox[{"0", ",", "0", ",", 
                RowBox[{"-", "0.3"}]}], "}"}]}], "}"}], "]"}], ",", 
           "\[IndentingNewLine]", "Blue", ",", 
           RowBox[{"Arrow", "[", 
            RowBox[{"{", 
             RowBox[{
              RowBox[{"{", 
               RowBox[{"0", ",", "0", ",", "0"}], "}"}], ",", 
              RowBox[{"{", 
               RowBox[{"0", ",", "0.3", ",", "0"}], "}"}]}], "}"}], "]"}]}], 
          "\[IndentingNewLine]", "}"}], ",", 
         RowBox[{"Boxed", "->", "False"}]}], "]"}]}]}], "\[IndentingNewLine]",
      "]"}], ",", 
    RowBox[{"{", 
     RowBox[{
      RowBox[{"{", 
       RowBox[{"rotateY", ",", "16"}], "}"}], ",", "0", ",", "90"}], "}"}], 
    ",", 
    RowBox[{"{", 
     RowBox[{
      RowBox[{"{", 
       RowBox[{"rotateX", ",", "16"}], "}"}], ",", "0", ",", "90"}], "}"}]}], 
   "]"}]}]], "Input",
 Background->RGBColor[
  0.9529411764705882, 0.9529411764705882, 0.9529411764705882],
 CellLabel->"In[8]:=",ExpressionUUID->"493ddc04-195c-4324-9866-458f0779401b"],

Cell[BoxData[
 TagBox[
  StyleBox[
   DynamicModuleBox[{$CellContext`rotateX$$ = 62.1, $CellContext`rotateY$$ = 
    58.400000000000006`, Typeset`show$$ = True, Typeset`bookmarkList$$ = {}, 
    Typeset`bookmarkMode$$ = "Menu", Typeset`animator$$, Typeset`animvar$$ = 
    1, Typeset`name$$ = "\"\:65e0\:6807\:9898\"", Typeset`specs$$ = {{{
       Hold[$CellContext`rotateY$$], 16}, 0, 90, ControlType -> 
      Manipulator}, {{
       Hold[$CellContext`rotateX$$], 16}, 0, 90, ControlType -> Manipulator}},
     Typeset`size$$ = {450., {222., 228.}}, Typeset`update$$ = 0, 
    Typeset`initDone$$, Typeset`skipInitDone$$ = True}, 
    DynamicBox[Manipulate`ManipulateBoxes[
     1, StandardForm, 
      "Variables" :> {$CellContext`rotateX$$ = 16, $CellContext`rotateY$$ = 
        16}, "ControllerVariables" :> {}, 
      "OtherVariables" :> {
       Typeset`show$$, Typeset`bookmarkList$$, Typeset`bookmarkMode$$, 
        Typeset`animator$$, Typeset`animvar$$, Typeset`name$$, 
        Typeset`specs$$, Typeset`size$$, Typeset`update$$, Typeset`initDone$$,
         Typeset`skipInitDone$$}, "Body" :> 
      Module[{$CellContext`p1 = {-0.5, -0.5, -2 + 1.5}, $CellContext`p2 = {
          0.5, -0.5, -2 + 1.5}, $CellContext`p3 = {
          0.5, 0.5, -2 + 1.5}, $CellContext`p4 = {-0.5, 0.5, -2 + 
           1.5}, $CellContext`p5 = {-0.5, -0.5, -1 + 1.5}, $CellContext`p6 = {
          0.5, -0.5, -1 + 1.5}, $CellContext`p7 = {
          0.5, 0.5, -1 + 1.5}, $CellContext`p8 = {-0.5, 0.5, -1 + 
           1.5}, $CellContext`rotate = Dot[
           RotationMatrix[$CellContext`rotateY$$ Degree, {0, 1, 0}], 
           
           RotationMatrix[$CellContext`rotateX$$ Degree, {1, 0, 
            0}]]}, $CellContext`p11 = 
         Dot[$CellContext`rotate, $CellContext`p1]; $CellContext`p21 = 
         Dot[$CellContext`rotate, $CellContext`p2]; $CellContext`p31 = 
         Dot[$CellContext`rotate, $CellContext`p3]; $CellContext`p41 = 
         Dot[$CellContext`rotate, $CellContext`p4]; $CellContext`p51 = 
         Dot[$CellContext`rotate, $CellContext`p5]; $CellContext`p61 = 
         Dot[$CellContext`rotate, $CellContext`p6]; $CellContext`p71 = 
         Dot[$CellContext`rotate, $CellContext`p7]; $CellContext`p81 = 
         Dot[$CellContext`rotate, $CellContext`p8]; Graphics3D[{Red, 
           
           Line[{$CellContext`p5, $CellContext`p1, $CellContext`p2, \
$CellContext`p3}], 
           
           Line[{$CellContext`p2, $CellContext`p6, $CellContext`p7, \
$CellContext`p8}], 
           
           Line[{$CellContext`p1, $CellContext`p4, $CellContext`p3, \
$CellContext`p7}], 
           
           Line[{$CellContext`p4, $CellContext`p8, $CellContext`p5, \
$CellContext`p6}], Green, 
           
           Line[{$CellContext`p51, $CellContext`p11, $CellContext`p21, \
$CellContext`p31}], 
           
           Line[{$CellContext`p21, $CellContext`p61, $CellContext`p71, \
$CellContext`p81}], 
           
           Line[{$CellContext`p11, $CellContext`p41, $CellContext`p31, \
$CellContext`p71}], 
           
           Line[{$CellContext`p41, $CellContext`p81, $CellContext`p51, \
$CellContext`p61}], Green, 
           Arrow[{{0, 0, 0}, {0, 0, -0.3}}], Blue, 
           Arrow[{{0, 0, 0}, {0, 0.3, 0}}]}, Boxed -> False]], 
      "Specifications" :> {{{$CellContext`rotateY$$, 16}, 0, 
         90}, {{$CellContext`rotateX$$, 16}, 0, 90}}, "Options" :> {}, 
      "DefaultOptions" :> {}],
     ImageSizeCache->{507., {299.91754141980783`, 307.08245858019217`}},
     SingleEvaluation->True],
    Deinitialization:>None,
    DynamicModuleValues:>{},
    SynchronousInitialization->True,
    UndoTrackedVariables:>{Typeset`show$$, Typeset`bookmarkMode$$},
    UnsavedVariables:>{Typeset`initDone$$},
    UntrackedVariables:>{Typeset`size$$}], "Manipulate",
   Deployed->True,
   StripOnInput->False],
  Manipulate`InterpretManipulate[1]]], "Output",
 CellLabel->"Out[8]=",ExpressionUUID->"c4893e27-8c2e-c94b-80a5-87500442f101"]
}, Open  ]],

Cell[CellGroupData[{

Cell["Orthographic projection", "Subchapter",ExpressionUUID->"77b2ae4c-9b67-42b4-9434-707ffbb0573e"],

Cell["\:6b63\:4ea4\:6295\:5f71\:5c31\:662f\:628az\:8f74\:76f4\:63a5\:5220\
\:6389\:4e86", "Text",ExpressionUUID->"308ab6c8-2a25-4638-ad12-d785a2af76d2"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"Manipulate", "[", 
  RowBox[{
   RowBox[{"Module", "[", "\[IndentingNewLine]", 
    RowBox[{
     RowBox[{"{", "\[IndentingNewLine]", 
      RowBox[{
       RowBox[{"p1", "=", 
        RowBox[{"{", 
         RowBox[{
          RowBox[{"-", "0.5"}], ",", 
          RowBox[{"-", "0.5"}], ",", 
          RowBox[{
           RowBox[{"-", "2"}], "+", "1.5"}]}], "}"}]}], ",", 
       RowBox[{"p2", "=", 
        RowBox[{"{", 
         RowBox[{"0.5", ",", 
          RowBox[{"-", "0.5"}], ",", 
          RowBox[{
           RowBox[{"-", "2"}], "+", "1.5"}]}], "}"}]}], ",", 
       RowBox[{"p3", "=", 
        RowBox[{"{", 
         RowBox[{"0.5", ",", "0.5", ",", 
          RowBox[{
           RowBox[{"-", "2"}], "+", "1.5"}]}], "}"}]}], ",", 
       RowBox[{"p4", "=", 
        RowBox[{"{", 
         RowBox[{
          RowBox[{"-", "0.5"}], ",", "0.5", ",", 
          RowBox[{
           RowBox[{"-", "2"}], "+", "1.5"}]}], "}"}]}], ",", 
       "\[IndentingNewLine]", 
       RowBox[{"p5", "=", 
        RowBox[{"{", 
         RowBox[{
          RowBox[{"-", "0.5"}], ",", 
          RowBox[{"-", "0.5"}], ",", 
          RowBox[{
           RowBox[{"-", "1"}], "+", "1.5"}]}], "}"}]}], ",", 
       RowBox[{"p6", "=", 
        RowBox[{"{", 
         RowBox[{"0.5", ",", 
          RowBox[{"-", "0.5"}], ",", 
          RowBox[{
           RowBox[{"-", "1"}], "+", "1.5"}]}], "}"}]}], ",", 
       RowBox[{"p7", "=", 
        RowBox[{"{", 
         RowBox[{"0.5", ",", "0.5", ",", 
          RowBox[{
           RowBox[{"-", "1"}], "+", "1.5"}]}], "}"}]}], ",", 
       RowBox[{"p8", "=", 
        RowBox[{"{", 
         RowBox[{
          RowBox[{"-", "0.5"}], ",", "0.5", ",", 
          RowBox[{
           RowBox[{"-", "1"}], "+", "1.5"}]}], "}"}]}], ",", 
       RowBox[{"rotate", "=", " ", 
        RowBox[{
         RowBox[{"RotationMatrix", "[", 
          RowBox[{
           RowBox[{"rotateY", " ", "Degree"}], ",", 
           RowBox[{"{", 
            RowBox[{"0", ",", "1", ",", "0"}], "}"}]}], "]"}], ".", 
         RowBox[{"RotationMatrix", "[", 
          RowBox[{
           RowBox[{"rotateX", " ", "Degree"}], ",", 
           RowBox[{"{", 
            RowBox[{"1", ",", "0", ",", "0"}], "}"}]}], "]"}], ".", 
         RowBox[{"RotationMatrix", "[", 
          RowBox[{
           RowBox[{"rotateZ", " ", "Degree"}], ",", 
           RowBox[{"{", 
            RowBox[{"0", ",", "0", ",", "1"}], "}"}]}], "]"}]}]}]}], 
      "\[IndentingNewLine]", "}"}], ",", "\[IndentingNewLine]", 
     RowBox[{
      RowBox[{"p11", " ", "=", 
       RowBox[{"rotate", ".", "p1"}]}], ";", 
      RowBox[{"p21", " ", "=", 
       RowBox[{"rotate", ".", "p2"}]}], ";", 
      RowBox[{"p31", " ", "=", 
       RowBox[{"rotate", ".", "p3"}]}], ";", 
      RowBox[{"p41", " ", "=", 
       RowBox[{"rotate", ".", "p4"}]}], ";", "\[IndentingNewLine]", 
      RowBox[{"p51", " ", "=", 
       RowBox[{"rotate", ".", "p5"}]}], ";", 
      RowBox[{"p61", " ", "=", 
       RowBox[{"rotate", ".", "p6"}]}], ";", 
      RowBox[{"p71", " ", "=", 
       RowBox[{"rotate", ".", "p7"}]}], ";", 
      RowBox[{"p81", " ", "=", 
       RowBox[{"rotate", ".", "p8"}]}], ";", "\[IndentingNewLine]", 
      RowBox[{"p1d", " ", "=", 
       RowBox[{"Delete", "[", 
        RowBox[{
         RowBox[{"rotate", ".", "p1"}], ",", "3"}], "]"}]}], ";", 
      RowBox[{"p2d", " ", "=", 
       RowBox[{"Delete", "[", 
        RowBox[{
         RowBox[{"rotate", ".", "p2"}], ",", "3"}], "]"}]}], ";", 
      RowBox[{"p3d", " ", "=", 
       RowBox[{"Delete", "[", 
        RowBox[{
         RowBox[{"rotate", ".", "p3"}], ",", "3"}], "]"}]}], ";", 
      RowBox[{"p4d", " ", "=", 
       RowBox[{"Delete", "[", 
        RowBox[{
         RowBox[{"rotate", ".", "p4"}], ",", "3"}], "]"}]}], ";", 
      RowBox[{"p5d", " ", "=", 
       RowBox[{"Delete", "[", 
        RowBox[{
         RowBox[{"rotate", ".", "p5"}], ",", "3"}], "]"}]}], ";", 
      RowBox[{"p6d", " ", "=", 
       RowBox[{"Delete", "[", 
        RowBox[{
         RowBox[{"rotate", ".", "p6"}], ",", "3"}], "]"}]}], ";", 
      RowBox[{"p7d", " ", "=", 
       RowBox[{"Delete", "[", 
        RowBox[{
         RowBox[{"rotate", ".", "p7"}], ",", "3"}], "]"}]}], ";", 
      RowBox[{"p8d", " ", "=", 
       RowBox[{"Delete", "[", 
        RowBox[{
         RowBox[{"rotate", ".", "p8"}], ",", "3"}], "]"}]}], ";", 
      StyleBox["\n", "Code"], 
      RowBox[{
       StyleBox["{", "Code"], 
       RowBox[{
        RowBox[{"Graphics3D", "[", 
         RowBox[{
          RowBox[{"{", "\[IndentingNewLine]", 
           RowBox[{"(*", 
            RowBox[{
            "\:628a\:7acb\:65b9\:4f53\:753b\:51fa\:6765\:81f3\:5c11\:9700\
\:89814\:7b14", "\:ff0c", "\:6839\:636e\:56fe\:8bba", "\:ff0c", 
             RowBox[{"\:7b14\:753b", "=", 
              RowBox[{"\:5947\:6570\:70b9\:4e2a\:6570", "/", "2"}]}], 
             "\:ff0c", 
             RowBox[{
             "8", "\:4e2a\:9876\:70b9\:6240\:4ee5\:75284\:6761\:7ebf\:6bb5"}]}\
], "*)"}], "\[IndentingNewLine]", 
           RowBox[{"Red", ",", 
            RowBox[{"Line", "[", 
             RowBox[{"{", 
              RowBox[{"p5", ",", "p1", ",", "p2", ",", "p3"}], "}"}], "]"}], 
            ",", 
            RowBox[{"Line", "[", 
             RowBox[{"{", 
              RowBox[{"p2", ",", "p6", ",", "p7", ",", "p8"}], "}"}], "]"}], 
            ",", 
            RowBox[{"Line", "[", 
             RowBox[{"{", 
              RowBox[{"p1", ",", "p4", ",", "p3", ",", "p7"}], "}"}], "]"}], 
            ",", 
            RowBox[{"Line", "[", 
             RowBox[{"{", 
              RowBox[{"p4", ",", "p8", ",", "p5", ",", "p6"}], "}"}], "]"}], 
            ",", "\[IndentingNewLine]", "Green", ",", 
            RowBox[{"Line", "[", 
             RowBox[{"{", 
              RowBox[{"p51", ",", "p11", ",", "p21", ",", "p31"}], "}"}], 
             "]"}], ",", 
            RowBox[{"Line", "[", 
             RowBox[{"{", 
              RowBox[{"p21", ",", "p61", ",", "p71", ",", "p81"}], "}"}], 
             "]"}], ",", 
            RowBox[{"Line", "[", 
             RowBox[{"{", 
              RowBox[{"p11", ",", "p41", ",", "p31", ",", "p71"}], "}"}], 
             "]"}], ",", 
            RowBox[{"Line", "[", 
             RowBox[{"{", 
              RowBox[{"p41", ",", "p81", ",", "p51", ",", "p61"}], "}"}], 
             "]"}], ",", "\[IndentingNewLine]", 
            RowBox[{"(*", 
             RowBox[{
              RowBox[{"\:7eff\:8272\:662f\:76f8\:673a\:671d\:5411", 
               RowBox[{"(", 
                RowBox[{"-", "z"}], ")"}]}], "\:ff0c", 
              RowBox[{"\:84dd\:8272\:662f\:5411\:4e0a\:65b9\:5411", 
               RowBox[{"(", "y", ")"}]}]}], "*)"}], "\[IndentingNewLine]", 
            "Green", ",", 
            RowBox[{"Arrow", "[", 
             RowBox[{"{", 
              RowBox[{
               RowBox[{"{", 
                RowBox[{"0", ",", "0", ",", "0"}], "}"}], ",", 
               RowBox[{"{", 
                RowBox[{"0", ",", "0", ",", 
                 RowBox[{"-", "0.3"}]}], "}"}]}], "}"}], "]"}], ",", 
            "\[IndentingNewLine]", "Blue", ",", 
            RowBox[{"Arrow", "[", 
             RowBox[{"{", 
              RowBox[{
               RowBox[{"{", 
                RowBox[{"0", ",", "0", ",", "0"}], "}"}], ",", 
               RowBox[{"{", 
                RowBox[{"0", ",", "0.3", ",", "0"}], "}"}]}], "}"}], "]"}]}], 
           "\[IndentingNewLine]", "}"}], ",", 
          RowBox[{"Boxed", "->", "False"}]}], "]"}], ",", 
        StyleBox["\n", "Code"], 
        RowBox[{"Graphics", "[", 
         RowBox[{"{", "\[IndentingNewLine]", 
          RowBox[{"Green", ",", 
           RowBox[{"Line", "[", 
            RowBox[{"{", 
             RowBox[{"p5d", ",", "p1d", ",", "p2d", ",", "p3d"}], "}"}], 
            "]"}], ",", 
           RowBox[{"Line", "[", 
            RowBox[{"{", 
             RowBox[{"p2d", ",", "p6d", ",", "p7d", ",", "p8d"}], "}"}], 
            "]"}], ",", 
           RowBox[{"Line", "[", 
            RowBox[{"{", 
             RowBox[{"p1d", ",", "p4d", ",", "p3d", ",", "p7d"}], "}"}], 
            "]"}], ",", 
           RowBox[{"Line", "[", 
            RowBox[{"{", 
             RowBox[{"p4d", ",", "p8d", ",", "p5d", ",", "p6d"}], "}"}], 
            "]"}], ",", "\[IndentingNewLine]", "Blue", ",", 
           RowBox[{"Arrow", "[", 
            RowBox[{"{", 
             RowBox[{
              RowBox[{"{", 
               RowBox[{"0", ",", "0"}], "}"}], ",", 
              RowBox[{"{", 
               RowBox[{"0", ",", "0.3"}], "}"}]}], "}"}], "]"}]}], 
          "\[IndentingNewLine]", "}"}], "]"}]}], "}"}]}]}], 
    "\[IndentingNewLine]", "]"}], ",", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"rotateY", ",", "45"}], "}"}], ",", "0", ",", "90"}], "}"}], 
   ",", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"rotateX", ",", "45"}], "}"}], ",", "0", ",", "90"}], "}"}], 
   ",", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"rotateZ", ",", "45"}], "}"}], ",", "0", ",", "90"}], "}"}]}], 
  "]"}]], "Input",
 Background->RGBColor[
  0.9529411764705882, 0.9529411764705882, 0.9529411764705882],
 CellLabel->"In[14]:=",ExpressionUUID->"ac9fdf10-ef8f-4b1b-af21-106617937a8e"],

Cell[BoxData[
 TagBox[
  StyleBox[
   DynamicModuleBox[{$CellContext`rotateX$$ = 44.7, $CellContext`rotateY$$ = 
    45.800000000000004`, $CellContext`rotateZ$$ = 50.2, Typeset`show$$ = True,
     Typeset`bookmarkList$$ = {}, Typeset`bookmarkMode$$ = "Menu", 
    Typeset`animator$$, Typeset`animvar$$ = 1, Typeset`name$$ = 
    "\"\:65e0\:6807\:9898\"", Typeset`specs$$ = {{{
       Hold[$CellContext`rotateY$$], 45}, 0, 90, ControlType -> 
      Manipulator}, {{
       Hold[$CellContext`rotateX$$], 45}, 0, 90, ControlType -> 
      Manipulator}, {{
       Hold[$CellContext`rotateZ$$], 45}, 0, 90, ControlType -> Manipulator}},
     Typeset`size$$ = {483.43750095367426`, {120., 125.23690510545418`}}, 
    Typeset`update$$ = 0, Typeset`initDone$$, Typeset`skipInitDone$$ = True}, 
    
    DynamicBox[Manipulate`ManipulateBoxes[
     1, StandardForm, 
      "Variables" :> {$CellContext`rotateX$$ = 45, $CellContext`rotateY$$ = 
        45, $CellContext`rotateZ$$ = 45}, "ControllerVariables" :> {}, 
      "OtherVariables" :> {
       Typeset`show$$, Typeset`bookmarkList$$, Typeset`bookmarkMode$$, 
        Typeset`animator$$, Typeset`animvar$$, Typeset`name$$, 
        Typeset`specs$$, Typeset`size$$, Typeset`update$$, Typeset`initDone$$,
         Typeset`skipInitDone$$}, "Body" :> 
      Module[{$CellContext`p1 = {-0.5, -0.5, -2 + 1.5}, $CellContext`p2 = {
          0.5, -0.5, -2 + 1.5}, $CellContext`p3 = {
          0.5, 0.5, -2 + 1.5}, $CellContext`p4 = {-0.5, 0.5, -2 + 
           1.5}, $CellContext`p5 = {-0.5, -0.5, -1 + 1.5}, $CellContext`p6 = {
          0.5, -0.5, -1 + 1.5}, $CellContext`p7 = {
          0.5, 0.5, -1 + 1.5}, $CellContext`p8 = {-0.5, 0.5, -1 + 
           1.5}, $CellContext`rotate = Dot[
           RotationMatrix[$CellContext`rotateY$$ Degree, {0, 1, 0}], 
           RotationMatrix[$CellContext`rotateX$$ Degree, {1, 0, 0}], 
           
           RotationMatrix[$CellContext`rotateZ$$ Degree, {0, 0, 
            1}]]}, $CellContext`p11 = 
         Dot[$CellContext`rotate, $CellContext`p1]; $CellContext`p21 = 
         Dot[$CellContext`rotate, $CellContext`p2]; $CellContext`p31 = 
         Dot[$CellContext`rotate, $CellContext`p3]; $CellContext`p41 = 
         Dot[$CellContext`rotate, $CellContext`p4]; $CellContext`p51 = 
         Dot[$CellContext`rotate, $CellContext`p5]; $CellContext`p61 = 
         Dot[$CellContext`rotate, $CellContext`p6]; $CellContext`p71 = 
         Dot[$CellContext`rotate, $CellContext`p7]; $CellContext`p81 = 
         Dot[$CellContext`rotate, $CellContext`p8]; $CellContext`p1d = 
         Delete[
           Dot[$CellContext`rotate, $CellContext`p1], 3]; $CellContext`p2d = 
         Delete[
           Dot[$CellContext`rotate, $CellContext`p2], 3]; $CellContext`p3d = 
         Delete[
           Dot[$CellContext`rotate, $CellContext`p3], 3]; $CellContext`p4d = 
         Delete[
           Dot[$CellContext`rotate, $CellContext`p4], 3]; $CellContext`p5d = 
         Delete[
           Dot[$CellContext`rotate, $CellContext`p5], 3]; $CellContext`p6d = 
         Delete[
           Dot[$CellContext`rotate, $CellContext`p6], 3]; $CellContext`p7d = 
         Delete[
           Dot[$CellContext`rotate, $CellContext`p7], 3]; $CellContext`p8d = 
         Delete[
           Dot[$CellContext`rotate, $CellContext`p8], 3]; {
          Graphics3D[{Red, 
            
            Line[{$CellContext`p5, $CellContext`p1, $CellContext`p2, \
$CellContext`p3}], 
            
            Line[{$CellContext`p2, $CellContext`p6, $CellContext`p7, \
$CellContext`p8}], 
            
            Line[{$CellContext`p1, $CellContext`p4, $CellContext`p3, \
$CellContext`p7}], 
            
            Line[{$CellContext`p4, $CellContext`p8, $CellContext`p5, \
$CellContext`p6}], Green, 
            
            Line[{$CellContext`p51, $CellContext`p11, $CellContext`p21, \
$CellContext`p31}], 
            
            Line[{$CellContext`p21, $CellContext`p61, $CellContext`p71, \
$CellContext`p81}], 
            
            Line[{$CellContext`p11, $CellContext`p41, $CellContext`p31, \
$CellContext`p71}], 
            
            Line[{$CellContext`p41, $CellContext`p81, $CellContext`p51, \
$CellContext`p61}], Green, 
            Arrow[{{0, 0, 0}, {0, 0, -0.3}}], Blue, 
            Arrow[{{0, 0, 0}, {0, 0.3, 0}}]}, Boxed -> False], 
          Graphics[{Green, 
            
            Line[{$CellContext`p5d, $CellContext`p1d, $CellContext`p2d, \
$CellContext`p3d}], 
            
            Line[{$CellContext`p2d, $CellContext`p6d, $CellContext`p7d, \
$CellContext`p8d}], 
            
            Line[{$CellContext`p1d, $CellContext`p4d, $CellContext`p3d, \
$CellContext`p7d}], 
            
            Line[{$CellContext`p4d, $CellContext`p8d, $CellContext`p5d, \
$CellContext`p6d}], Blue, 
            Arrow[{{0, 0}, {0, 0.3}}]}]}], 
      "Specifications" :> {{{$CellContext`rotateY$$, 45}, 0, 
         90}, {{$CellContext`rotateX$$, 45}, 0, 
         90}, {{$CellContext`rotateZ$$, 45}, 0, 90}}, "Options" :> {}, 
      "DefaultOptions" :> {}],
     ImageSizeCache->{541., {198.91754141980783`, 206.08245858019217`}},
     SingleEvaluation->True],
    Deinitialization:>None,
    DynamicModuleValues:>{},
    SynchronousInitialization->True,
    UndoTrackedVariables:>{Typeset`show$$, Typeset`bookmarkMode$$},
    UnsavedVariables:>{Typeset`initDone$$},
    UntrackedVariables:>{Typeset`size$$}], "Manipulate",
   Deployed->True,
   StripOnInput->False],
  Manipulate`InterpretManipulate[1]]], "Output",
 CellLabel->"Out[14]=",ExpressionUUID->"4f2bce41-d0ef-d944-9ffb-0a127dca3e50"]
}, Open  ]]
}, Open  ]],

Cell[CellGroupData[{

Cell["Perspective projection", "Subchapter",ExpressionUUID->"3ee9d62b-7615-404f-8b64-13a860c2c7ab"],

Cell["", "Text",ExpressionUUID->"7fbca83c-48c6-4901-9a28-a409230c9fcf"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{" ", "\[IndentingNewLine]", 
  RowBox[{"Manipulate", "[", 
   RowBox[{
    RowBox[{"Module", "[", 
     RowBox[{
      RowBox[{"{", 
       RowBox[{
        RowBox[{"p1", "=", 
         RowBox[{"{", 
          RowBox[{
           RowBox[{"-", "0.5"}], ",", 
           RowBox[{"-", "0.5"}], ",", 
           RowBox[{"-", "2"}]}], "}"}]}], ",", 
        RowBox[{"p2", "=", 
         RowBox[{"{", 
          RowBox[{"0.5", ",", 
           RowBox[{"-", "0.5"}], ",", 
           RowBox[{"-", "2"}]}], "}"}]}], ",", 
        RowBox[{"p3", "=", 
         RowBox[{"{", 
          RowBox[{"0.5", ",", "0.5", ",", 
           RowBox[{"-", "2"}]}], "}"}]}], ",", 
        RowBox[{"p4", "=", 
         RowBox[{"{", 
          RowBox[{
           RowBox[{"-", "0.5"}], ",", "0.5", ",", 
           RowBox[{"-", "2"}]}], "}"}]}], ",", 
        RowBox[{"p5", "=", 
         RowBox[{"{", 
          RowBox[{
           RowBox[{"-", "0.5"}], ",", 
           RowBox[{"-", "0.5"}], ",", 
           RowBox[{"-", "1"}]}], "}"}]}], ",", 
        RowBox[{"p6", "=", 
         RowBox[{"{", 
          RowBox[{"0.5", ",", 
           RowBox[{"-", "0.5"}], ",", 
           RowBox[{"-", "1"}]}], "}"}]}], ",", 
        RowBox[{"p7", "=", 
         RowBox[{"{", 
          RowBox[{"0.5", ",", "0.5", ",", 
           RowBox[{"-", "1"}]}], "}"}]}], ",", 
        RowBox[{"p8", "=", 
         RowBox[{"{", 
          RowBox[{
           RowBox[{"-", "0.5"}], ",", "0.5", ",", 
           RowBox[{"-", "1"}]}], "}"}]}], ",", "p11", ",", "p21", ",", "p31", 
        ",", "p41", ",", "p51", ",", "p61", ",", "p71", ",", "p81", ",", 
        RowBox[{"rotate", "=", " ", 
         RowBox[{
          RowBox[{"RotationMatrix", "[", 
           RowBox[{
            RowBox[{"rotateY", " ", "Degree"}], ",", 
            RowBox[{"{", 
             RowBox[{"0", ",", "1", ",", "0"}], "}"}]}], "]"}], ".", 
          RowBox[{"RotationMatrix", "[", 
           RowBox[{
            RowBox[{"rotateX", " ", "Degree"}], ",", 
            RowBox[{"{", 
             RowBox[{"1", ",", "0", ",", "0"}], "}"}]}], "]"}]}]}], ",", 
        "perspectiveMatrix"}], "\[IndentingNewLine]", 
       RowBox[{
       "(*", "\:900f\:89c6\:77e9\:9635\:7684\:6570\:503c\:8ddf\:76f8\:673a\
\:8fd1\:5e73\:9762\:8fdc\:5e73\:9762\:6709\:5173", "*)"}], 
       "\[IndentingNewLine]", "\[IndentingNewLine]", "}"}], ",", 
      "\[IndentingNewLine]", 
      RowBox[{"(*", 
       RowBox[{
       "\:8fd9\:662f\:89c6\:9891\:91cc\:63a8\:51fa\:7684\:900f\:89c6\:77e9\
\:9635", "\:ff0c", 
        "\:5728\:5b9e\:9645\:64cd\:4f5c\:4e2d\:5f97\:5230\:7684\:7ed3\:679c\
\:6bd4\:8f83\:602a\:5f02"}], "*)"}], "\[IndentingNewLine]", 
      RowBox[{"(*", 
       RowBox[{
        RowBox[{
         RowBox[{"perspectiveMatrix", "[", 
          RowBox[{"n_", ",", "f_"}], "]"}], ":=", 
         RowBox[{"(", GridBox[{
            {"n", "0", "0", "0"},
            {"0", "n", "0", "0"},
            {"0", "0", 
             RowBox[{"n", "+", "f"}], 
             RowBox[{
              RowBox[{"-", "n"}], "*", "f"}]},
            {"0", "0", "1", "0"}
           }], ")"}]}], ";"}], "*)"}], "\[IndentingNewLine]", 
      RowBox[{
       RowBox[{
        RowBox[{"perspectiveMatrix", "[", 
         RowBox[{"n_", ",", "f_"}], "]"}], ":=", 
        RowBox[{"(", GridBox[{
           {
            FractionBox["n", "f"], "0", "0", "0"},
           {"0", 
            FractionBox["n", "f"], "0", "0"},
           {"0", "0", "1", "0"},
           {"0", "0", "0", "1"}
          }], ")"}]}], ";", "\[IndentingNewLine]", 
       RowBox[{"p1", "=", 
        RowBox[{"rotate", ".", "p1"}]}], ";", 
       RowBox[{"p2", "=", 
        RowBox[{"rotate", ".", "p2"}]}], ";", 
       RowBox[{"p3", "=", 
        RowBox[{"rotate", ".", "p3"}]}], ";", 
       RowBox[{"p4", "=", 
        RowBox[{"rotate", ".", "p4"}]}], ";", 
       RowBox[{"p5", "=", 
        RowBox[{"rotate", ".", "p5"}]}], ";", 
       RowBox[{"p6", "=", 
        RowBox[{"rotate", ".", "p6"}]}], ";", 
       RowBox[{"p7", "=", 
        RowBox[{"rotate", ".", "p7"}]}], ";", 
       RowBox[{"p8", "=", 
        RowBox[{"rotate", ".", "p8"}]}], ";", "\[IndentingNewLine]", 
       RowBox[{"p11", " ", "=", 
        RowBox[{"Delete", "[", 
         RowBox[{
          RowBox[{
           RowBox[{"perspectiveMatrix", "[", 
            RowBox[{"near", ",", 
             RowBox[{"-", 
              RowBox[{
              "p1", "\[LeftDoubleBracket]", "3", 
               "\[RightDoubleBracket]"}]}]}], "]"}], ".", 
           RowBox[{"Append", "[", 
            RowBox[{"p1", ",", "1"}], "]"}]}], ",", 
          RowBox[{"{", "4", "}"}]}], "]"}]}], ";", 
       RowBox[{"p21", " ", "=", 
        RowBox[{"Delete", "[", 
         RowBox[{
          RowBox[{
           RowBox[{"perspectiveMatrix", "[", 
            RowBox[{"near", ",", 
             RowBox[{"-", 
              RowBox[{
              "p2", "\[LeftDoubleBracket]", "3", 
               "\[RightDoubleBracket]"}]}]}], "]"}], ".", 
           RowBox[{"Append", "[", 
            RowBox[{"p2", ",", "1"}], "]"}]}], ",", 
          RowBox[{"{", "4", "}"}]}], "]"}]}], ";", 
       RowBox[{"p31", " ", "=", 
        RowBox[{"Delete", "[", 
         RowBox[{
          RowBox[{
           RowBox[{"perspectiveMatrix", "[", 
            RowBox[{"near", ",", 
             RowBox[{"-", 
              RowBox[{
              "p3", "\[LeftDoubleBracket]", "3", 
               "\[RightDoubleBracket]"}]}]}], "]"}], ".", 
           RowBox[{"Append", "[", 
            RowBox[{"p3", ",", "1"}], "]"}]}], ",", 
          RowBox[{"{", "4", "}"}]}], "]"}]}], ";", 
       RowBox[{"p41", " ", "=", 
        RowBox[{"Delete", "[", 
         RowBox[{
          RowBox[{
           RowBox[{"perspectiveMatrix", "[", 
            RowBox[{"near", ",", 
             RowBox[{"-", 
              RowBox[{
              "p4", "\[LeftDoubleBracket]", "3", 
               "\[RightDoubleBracket]"}]}]}], "]"}], ".", 
           RowBox[{"Append", "[", 
            RowBox[{"p4", ",", "1"}], "]"}]}], ",", 
          RowBox[{"{", "4", "}"}]}], "]"}]}], ";", 
       RowBox[{"p51", " ", "=", 
        RowBox[{"Delete", "[", 
         RowBox[{
          RowBox[{
           RowBox[{"perspectiveMatrix", "[", 
            RowBox[{"near", ",", 
             RowBox[{"-", 
              RowBox[{
              "p5", "\[LeftDoubleBracket]", "3", 
               "\[RightDoubleBracket]"}]}]}], "]"}], ".", 
           RowBox[{"Append", "[", 
            RowBox[{"p5", ",", "1"}], "]"}]}], ",", 
          RowBox[{"{", "4", "}"}]}], "]"}]}], ";", 
       RowBox[{"p61", "=", 
        RowBox[{"Delete", "[", 
         RowBox[{
          RowBox[{
           RowBox[{"perspectiveMatrix", "[", 
            RowBox[{"near", ",", 
             RowBox[{"-", 
              RowBox[{
              "p6", "\[LeftDoubleBracket]", "3", 
               "\[RightDoubleBracket]"}]}]}], "]"}], ".", 
           RowBox[{"Append", "[", 
            RowBox[{"p6", ",", "1"}], "]"}]}], ",", 
          RowBox[{"{", "4", "}"}]}], "]"}]}], ";", 
       RowBox[{"p71", " ", "=", 
        RowBox[{"Delete", "[", 
         RowBox[{
          RowBox[{
           RowBox[{"perspectiveMatrix", "[", 
            RowBox[{"near", ",", 
             RowBox[{"-", 
              RowBox[{
              "p7", "\[LeftDoubleBracket]", "3", 
               "\[RightDoubleBracket]"}]}]}], "]"}], ".", 
           RowBox[{"Append", "[", 
            RowBox[{"p7", ",", "1"}], "]"}]}], ",", 
          RowBox[{"{", "4", "}"}]}], "]"}]}], ";", 
       RowBox[{"p81", " ", "=", 
        RowBox[{"Delete", "[", 
         RowBox[{
          RowBox[{
           RowBox[{"perspectiveMatrix", "[", 
            RowBox[{"near", ",", 
             RowBox[{"-", 
              RowBox[{
              "p8", "\[LeftDoubleBracket]", "3", 
               "\[RightDoubleBracket]"}]}]}], "]"}], ".", 
           RowBox[{"Append", "[", 
            RowBox[{"p8", ",", "1"}], "]"}]}], ",", 
          RowBox[{"{", "4", "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", 
       RowBox[{"{", 
        RowBox[{
         RowBox[{"Graphics3D", "[", 
          RowBox[{
           RowBox[{"{", "\[IndentingNewLine]", 
            RowBox[{
             RowBox[{"Opacity", "[", "0.3", "]"}], ",", 
             RowBox[{"InfinitePlane", "[", 
              RowBox[{
               RowBox[{"{", 
                RowBox[{"0", ",", "0", ",", 
                 RowBox[{"-", "near"}]}], "}"}], ",", 
               RowBox[{"{", 
                RowBox[{
                 RowBox[{"{", 
                  RowBox[{"1", ",", "0", ",", "0"}], "}"}], ",", 
                 RowBox[{"{", 
                  RowBox[{"0", ",", "1", ",", "0"}], "}"}]}], "}"}]}], "]"}], 
             ",", "\[IndentingNewLine]", "Green", ",", 
             RowBox[{"Line", "[", 
              RowBox[{"{", 
               RowBox[{"p5", ",", "p1", ",", "p2", ",", "p3"}], "}"}], "]"}], 
             ",", 
             RowBox[{"Line", "[", 
              RowBox[{"{", 
               RowBox[{"p2", ",", "p6", ",", "p7", ",", "p8"}], "}"}], "]"}], 
             ",", 
             RowBox[{"Line", "[", 
              RowBox[{"{", 
               RowBox[{"p1", ",", "p4", ",", "p3", ",", "p7"}], "}"}], "]"}], 
             ",", 
             RowBox[{"Line", "[", 
              RowBox[{"{", 
               RowBox[{"p4", ",", "p8", ",", "p5", ",", "p6"}], "}"}], "]"}], 
             ",", "Green", ",", 
             RowBox[{"Arrow", "[", 
              RowBox[{"{", 
               RowBox[{
                RowBox[{"{", 
                 RowBox[{"0", ",", "0", ",", "0"}], "}"}], ",", 
                RowBox[{"{", 
                 RowBox[{"0", ",", "0", ",", 
                  RowBox[{"-", "1"}]}], "}"}]}], "}"}], "]"}], ",", "Blue", 
             ",", 
             RowBox[{"Arrow", "[", 
              RowBox[{"{", 
               RowBox[{
                RowBox[{"{", 
                 RowBox[{"0", ",", "0", ",", "0"}], "}"}], ",", 
                RowBox[{"{", 
                 RowBox[{"0", ",", "0.3", ",", "0"}], "}"}]}], "}"}], "]"}], 
             ",", "\[IndentingNewLine]", "Red", ",", 
             RowBox[{"Line", "[", 
              RowBox[{"{", 
               RowBox[{"p51", ",", "p11", ",", "p21", ",", "p31"}], "}"}], 
              "]"}], ",", 
             RowBox[{"Line", "[", 
              RowBox[{"{", 
               RowBox[{"p21", ",", "p61", ",", "p71", ",", "p81"}], "}"}], 
              "]"}], ",", 
             RowBox[{"Line", "[", 
              RowBox[{"{", 
               RowBox[{"p11", ",", "p41", ",", "p31", ",", "p71"}], "}"}], 
              "]"}], ",", 
             RowBox[{"Line", "[", 
              RowBox[{"{", 
               RowBox[{"p41", ",", "p81", ",", "p51", ",", "p61"}], "}"}], 
              "]"}], ",", "Green", ",", 
             RowBox[{"Arrow", "[", 
              RowBox[{"{", 
               RowBox[{
                RowBox[{"{", 
                 RowBox[{"0", ",", "0", ",", "0"}], "}"}], ",", 
                RowBox[{"{", 
                 RowBox[{"0", ",", "0", ",", 
                  RowBox[{"-", "1"}]}], "}"}]}], "}"}], "]"}], ",", "Blue", 
             ",", 
             RowBox[{"Arrow", "[", 
              RowBox[{"{", 
               RowBox[{
                RowBox[{"{", 
                 RowBox[{"0", ",", "0", ",", "0"}], "}"}], ",", 
                RowBox[{"{", 
                 RowBox[{"0", ",", "0.3", ",", "0"}], "}"}]}], "}"}], "]"}]}],
             "\[IndentingNewLine]", "}"}], ",", 
           RowBox[{"Boxed", "->", "False"}]}], "]"}], ",", 
         "\[IndentingNewLine]", 
         RowBox[{"Graphics", "[", "\[IndentingNewLine]", 
          RowBox[{"{", 
           RowBox[{
            RowBox[{"Line", "[", 
             RowBox[{"{", 
              RowBox[{
               RowBox[{"Delete", "[", 
                RowBox[{"p51", ",", "3"}], "]"}], ",", 
               RowBox[{"Delete", "[", 
                RowBox[{"p11", ",", "3"}], "]"}], ",", 
               RowBox[{"Delete", "[", 
                RowBox[{"p21", ",", "3"}], "]"}], ",", 
               RowBox[{"Delete", "[", 
                RowBox[{"p31", ",", "3"}], "]"}]}], "}"}], "]"}], ",", 
            "\[IndentingNewLine]", 
            RowBox[{"Line", "[", 
             RowBox[{"{", 
              RowBox[{
               RowBox[{"Delete", "[", 
                RowBox[{"p21", ",", "3"}], "]"}], ",", 
               RowBox[{"Delete", "[", 
                RowBox[{"p61", ",", "3"}], "]"}], ",", 
               RowBox[{"Delete", "[", 
                RowBox[{"p71", ",", "3"}], "]"}], ",", 
               RowBox[{"Delete", "[", 
                RowBox[{"p81", ",", "3"}], "]"}]}], "}"}], "]"}], ",", 
            "\[IndentingNewLine]", 
            RowBox[{"Line", "[", 
             RowBox[{"{", 
              RowBox[{
               RowBox[{"Delete", "[", 
                RowBox[{"p11", ",", "3"}], "]"}], ",", 
               RowBox[{"Delete", "[", 
                RowBox[{"p41", ",", "3"}], "]"}], ",", 
               RowBox[{"Delete", "[", 
                RowBox[{"p31", ",", "3"}], "]"}], ",", 
               RowBox[{"Delete", "[", 
                RowBox[{"p71", ",", "3"}], "]"}]}], "}"}], "]"}], ",", 
            "\[IndentingNewLine]", 
            RowBox[{"Line", "[", 
             RowBox[{"{", 
              RowBox[{
               RowBox[{"Delete", "[", 
                RowBox[{"p41", ",", "3"}], "]"}], ",", 
               RowBox[{"Delete", "[", 
                RowBox[{"p81", ",", "3"}], "]"}], ",", 
               RowBox[{"Delete", "[", 
                RowBox[{"p51", ",", "3"}], "]"}], ",", 
               RowBox[{"Delete", "[", 
                RowBox[{"p61", ",", "3"}], "]"}]}], "}"}], "]"}]}], "}"}], 
          "\[IndentingNewLine]", "]"}]}], "}"}]}]}], "\[IndentingNewLine]", 
     "]"}], ",", 
    RowBox[{"{", 
     RowBox[{
      RowBox[{"{", 
       RowBox[{"rotateY", ",", "0"}], "}"}], ",", 
      RowBox[{"-", "90"}], ",", "90"}], "}"}], ",", 
    RowBox[{"{", 
     RowBox[{
      RowBox[{"{", 
       RowBox[{"rotateX", ",", "0"}], "}"}], ",", 
      RowBox[{"-", "90"}], ",", "90"}], "}"}], ",", 
    RowBox[{"{", 
     RowBox[{
      RowBox[{"{", 
       RowBox[{"near", ",", "0.3"}], "}"}], ",", "0", ",", "6"}], "}"}]}], 
   "]"}]}]], "Input",
 Background->RGBColor[
  0.9529411764705882, 0.9529411764705882, 0.9529411764705882],
 CellLabel->"In[25]:=",ExpressionUUID->"83048863-f552-4b40-9159-af3c01ec2394"],

Cell[BoxData[
 TagBox[
  StyleBox[
   DynamicModuleBox[{$CellContext`near$$ = 0.02, $CellContext`rotateX$$ = 
    16.200000000000003`, $CellContext`rotateY$$ = -17., Typeset`show$$ = True,
     Typeset`bookmarkList$$ = {}, Typeset`bookmarkMode$$ = "Menu", 
    Typeset`animator$$, Typeset`animvar$$ = 1, Typeset`name$$ = 
    "\"\:65e0\:6807\:9898\"", Typeset`specs$$ = {{{
       Hold[$CellContext`rotateY$$], 0}, -90, 90, ControlType -> 
      Manipulator}, {{
       Hold[$CellContext`rotateX$$], 0}, -90, 90, ControlType -> 
      Manipulator}, {{
       Hold[$CellContext`near$$], 0.3}, 0, 6, ControlType -> Manipulator}}, 
    Typeset`size$$ = {483.43750095367426`, {112., 117.42043430540429`}}, 
    Typeset`update$$ = 0, Typeset`initDone$$, Typeset`skipInitDone$$ = True}, 
    
    DynamicBox[Manipulate`ManipulateBoxes[
     1, StandardForm, 
      "Variables" :> {$CellContext`near$$ = 0.3, $CellContext`rotateX$$ = 
        0, $CellContext`rotateY$$ = 0}, "ControllerVariables" :> {}, 
      "OtherVariables" :> {
       Typeset`show$$, Typeset`bookmarkList$$, Typeset`bookmarkMode$$, 
        Typeset`animator$$, Typeset`animvar$$, Typeset`name$$, 
        Typeset`specs$$, Typeset`size$$, Typeset`update$$, Typeset`initDone$$,
         Typeset`skipInitDone$$}, "Body" :> 
      Module[{$CellContext`p1$ = {-0.5, -0.5, -2}, $CellContext`p2$ = {
          0.5, -0.5, -2}, $CellContext`p3$ = {
          0.5, 0.5, -2}, $CellContext`p4$ = {-0.5, 
           0.5, -2}, $CellContext`p5$ = {-0.5, -0.5, -1}, $CellContext`p6$ = {
          0.5, -0.5, -1}, $CellContext`p7$ = {
          0.5, 0.5, -1}, $CellContext`p8$ = {-0.5, 
           0.5, -1}, $CellContext`p11$, $CellContext`p21$, $CellContext`p31$, \
$CellContext`p41$, $CellContext`p51$, $CellContext`p61$, $CellContext`p71$, \
$CellContext`p81$, $CellContext`rotate$ = Dot[
           RotationMatrix[$CellContext`rotateY$$ Degree, {0, 1, 0}], 
           
           RotationMatrix[$CellContext`rotateX$$ Degree, {1, 0, 
            0}]], $CellContext`perspectiveMatrix$}, \
$CellContext`perspectiveMatrix$[
           Pattern[$CellContext`n, 
            Blank[]], 
           Pattern[$CellContext`f, 
            Blank[]]] := {{$CellContext`n/$CellContext`f, 0, 0, 0}, {
           0, $CellContext`n/$CellContext`f, 0, 0}, {0, 0, 1, 0}, {0, 0, 0, 
           1}}; $CellContext`p1$ = 
         Dot[$CellContext`rotate$, $CellContext`p1$]; $CellContext`p2$ = 
         Dot[$CellContext`rotate$, $CellContext`p2$]; $CellContext`p3$ = 
         Dot[$CellContext`rotate$, $CellContext`p3$]; $CellContext`p4$ = 
         Dot[$CellContext`rotate$, $CellContext`p4$]; $CellContext`p5$ = 
         Dot[$CellContext`rotate$, $CellContext`p5$]; $CellContext`p6$ = 
         Dot[$CellContext`rotate$, $CellContext`p6$]; $CellContext`p7$ = 
         Dot[$CellContext`rotate$, $CellContext`p7$]; $CellContext`p8$ = 
         Dot[$CellContext`rotate$, $CellContext`p8$]; $CellContext`p11$ = 
         Delete[
           Dot[
            $CellContext`perspectiveMatrix$[$CellContext`near$$, -
             Part[$CellContext`p1$, 3]], 
            Append[$CellContext`p1$, 1]], {4}]; $CellContext`p21$ = Delete[
           Dot[
            $CellContext`perspectiveMatrix$[$CellContext`near$$, -
             Part[$CellContext`p2$, 3]], 
            Append[$CellContext`p2$, 1]], {4}]; $CellContext`p31$ = Delete[
           Dot[
            $CellContext`perspectiveMatrix$[$CellContext`near$$, -
             Part[$CellContext`p3$, 3]], 
            Append[$CellContext`p3$, 1]], {4}]; $CellContext`p41$ = Delete[
           Dot[
            $CellContext`perspectiveMatrix$[$CellContext`near$$, -
             Part[$CellContext`p4$, 3]], 
            Append[$CellContext`p4$, 1]], {4}]; $CellContext`p51$ = Delete[
           Dot[
            $CellContext`perspectiveMatrix$[$CellContext`near$$, -
             Part[$CellContext`p5$, 3]], 
            Append[$CellContext`p5$, 1]], {4}]; $CellContext`p61$ = Delete[
           Dot[
            $CellContext`perspectiveMatrix$[$CellContext`near$$, -
             Part[$CellContext`p6$, 3]], 
            Append[$CellContext`p6$, 1]], {4}]; $CellContext`p71$ = Delete[
           Dot[
            $CellContext`perspectiveMatrix$[$CellContext`near$$, -
             Part[$CellContext`p7$, 3]], 
            Append[$CellContext`p7$, 1]], {4}]; $CellContext`p81$ = Delete[
           Dot[
            $CellContext`perspectiveMatrix$[$CellContext`near$$, -
             Part[$CellContext`p8$, 3]], 
            Append[$CellContext`p8$, 1]], {4}]; {
          Graphics3D[{
            Opacity[0.3], 
            
            InfinitePlane[{0, 0, -$CellContext`near$$}, {{1, 0, 0}, {0, 1, 
             0}}], Green, 
            
            Line[{$CellContext`p5$, $CellContext`p1$, $CellContext`p2$, \
$CellContext`p3$}], 
            
            Line[{$CellContext`p2$, $CellContext`p6$, $CellContext`p7$, \
$CellContext`p8$}], 
            
            Line[{$CellContext`p1$, $CellContext`p4$, $CellContext`p3$, \
$CellContext`p7$}], 
            
            Line[{$CellContext`p4$, $CellContext`p8$, $CellContext`p5$, \
$CellContext`p6$}], Green, 
            Arrow[{{0, 0, 0}, {0, 0, -1}}], Blue, 
            Arrow[{{0, 0, 0}, {0, 0.3, 0}}], Red, 
            
            Line[{$CellContext`p51$, $CellContext`p11$, $CellContext`p21$, \
$CellContext`p31$}], 
            
            Line[{$CellContext`p21$, $CellContext`p61$, $CellContext`p71$, \
$CellContext`p81$}], 
            
            Line[{$CellContext`p11$, $CellContext`p41$, $CellContext`p31$, \
$CellContext`p71$}], 
            
            Line[{$CellContext`p41$, $CellContext`p81$, $CellContext`p51$, \
$CellContext`p61$}], Green, 
            Arrow[{{0, 0, 0}, {0, 0, -1}}], Blue, 
            Arrow[{{0, 0, 0}, {0, 0.3, 0}}]}, Boxed -> False], 
          Graphics[{
            Line[{
              Delete[$CellContext`p51$, 3], 
              Delete[$CellContext`p11$, 3], 
              Delete[$CellContext`p21$, 3], 
              Delete[$CellContext`p31$, 3]}], 
            Line[{
              Delete[$CellContext`p21$, 3], 
              Delete[$CellContext`p61$, 3], 
              Delete[$CellContext`p71$, 3], 
              Delete[$CellContext`p81$, 3]}], 
            Line[{
              Delete[$CellContext`p11$, 3], 
              Delete[$CellContext`p41$, 3], 
              Delete[$CellContext`p31$, 3], 
              Delete[$CellContext`p71$, 3]}], 
            Line[{
              Delete[$CellContext`p41$, 3], 
              Delete[$CellContext`p81$, 3], 
              Delete[$CellContext`p51$, 3], 
              Delete[$CellContext`p61$, 3]}]}]}], 
      "Specifications" :> {{{$CellContext`rotateY$$, 0}, -90, 
         90}, {{$CellContext`rotateX$$, 0}, -90, 
         90}, {{$CellContext`near$$, 0.3}, 0, 6}}, "Options" :> {}, 
      "DefaultOptions" :> {}],
     ImageSizeCache->{541., {190.91754141980783`, 198.08245858019217`}},
     SingleEvaluation->True],
    Deinitialization:>None,
    DynamicModuleValues:>{},
    SynchronousInitialization->True,
    UndoTrackedVariables:>{Typeset`show$$, Typeset`bookmarkMode$$},
    UnsavedVariables:>{Typeset`initDone$$},
    UntrackedVariables:>{Typeset`size$$}], "Manipulate",
   Deployed->True,
   StripOnInput->False],
  Manipulate`InterpretManipulate[1]]], "Output",
 CellLabel->"Out[25]=",ExpressionUUID->"7ed6adfe-0b28-6843-a34b-0c3ceafc9a94"]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{
  RowBox[{"(*", 
   RowBox[{
   "\:4fa7\:89c6\:56fe", "\:ff0c", 
    "\:5bfb\:627ey\:7684\:5bf9\:5e94\:5173\:7cfb"}], "*)"}], "\n", 
  RowBox[{
   RowBox[{
    RowBox[{
     RowBox[{"IntersectionPoint", "[", "p_", "]"}], ":=", 
     RowBox[{"NSolve", "[", 
      RowBox[{
       RowBox[{
        RowBox[{"y", "==", 
         FractionBox[
          RowBox[{"x", "*", 
           RowBox[{
           "p", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}]}], 
          RowBox[{
          "p", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}]]}], "&&", 
        RowBox[{"x", "\[Equal]", 
         RowBox[{"Dynamic", "[", "xNear", "]"}]}]}], ",", 
       RowBox[{"{", 
        RowBox[{"x", ",", "y"}], "}"}]}], "]"}]}], ";"}], 
   "\[IndentingNewLine]", 
   RowBox[{"Slider", "[", 
    RowBox[{
     RowBox[{"Dynamic", "[", "xNear", "]"}], ",", 
     RowBox[{"{", 
      RowBox[{"0", ",", "3"}], "}"}]}], "]"}], "\[IndentingNewLine]", 
   RowBox[{"Manipulate", "[", "\[IndentingNewLine]", 
    RowBox[{
     RowBox[{"Show", "[", 
      StyleBox["\n", "Code"], 
      RowBox[{
       RowBox[{"Graphics", "[", 
        RowBox[{
         RowBox[{"{", "\[IndentingNewLine]", 
          RowBox[{"(*", 
           RowBox[{
           "\:8fdc\:5e73\:9762", "\:ff0c", 
            "\:8fd1\:5e73\:9762\:5c31\:5728y\:8f74\:4e0a"}], "*)"}], 
          "\[IndentingNewLine]", 
          RowBox[{"Dashed", ",", 
           RowBox[{"InfiniteLine", "[", 
            RowBox[{
             RowBox[{"{", 
              RowBox[{
               RowBox[{"Dynamic", "[", "xNear", "]"}], ",", "0"}], "}"}], ",", 
             RowBox[{"{", 
              RowBox[{"0", ",", "1"}], "}"}]}], "]"}]}], 
          "\[IndentingNewLine]", "}"}], ",", 
         RowBox[{"PlotRange", "\[Rule]", 
          RowBox[{"{", 
           RowBox[{
            RowBox[{"{", 
             RowBox[{
              RowBox[{"-", "0.1"}], ",", "3"}], "}"}], ",", 
            RowBox[{"{", 
             RowBox[{
              RowBox[{"-", "0.1"}], ",", "1.5"}], "}"}]}], "}"}]}], ",", 
         RowBox[{"Axes", "\[Rule]", "True"}]}], "]"}], ",", 
       "\[IndentingNewLine]", 
       RowBox[{"Graphics", "[", 
        RowBox[{"{", "\[IndentingNewLine]", 
         RowBox[{
         "(*", "Locator\:6240\:5728\:70b9\:4e0e\:539f\:70b9\:8fde\:7ebf", 
          "*)"}], "\[IndentingNewLine]", " ", 
         RowBox[{
          RowBox[{"HalfLine", "[", 
           RowBox[{
            RowBox[{"{", 
             RowBox[{"0", ",", "0"}], "}"}], ",", "p"}], "]"}], ",", 
          "\[IndentingNewLine]", 
          RowBox[{
          "(*", "\:8fde\:7ebf\:548c\:8fdc\:5e73\:9762\:7684\:4ea4\:70b9", 
           "*)"}], "\[IndentingNewLine]", "Red", ",", 
          RowBox[{"PointSize", "[", "Large", "]"}], ",", 
          RowBox[{"Point", "[", 
           RowBox[{
            RowBox[{"{", 
             RowBox[{"x", ",", "y"}], "}"}], "/.", 
            RowBox[{"IntersectionPoint", "[", "p", "]"}]}], "]"}], ",", 
          "\[IndentingNewLine]", 
          RowBox[{
          "(*", "\:7ecf\:8fc7\:6324\:538b\:53d8\:6362\:540e\:70b9\:7684\:65b0\
\:503c", "*)"}], "\[IndentingNewLine]", "Green", ",", 
          RowBox[{"Point", "[", 
           RowBox[{"{", 
            RowBox[{
             RowBox[{
             "p", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], ",", 
             FractionBox[
              RowBox[{
               RowBox[{"Dynamic", "[", "xNear", "]"}], "*", 
               RowBox[{
               "p", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}]}], 
              
              RowBox[{
              "p", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}]]}], 
            "}"}], "]"}]}], "\[IndentingNewLine]", "}"}], "]"}]}], 
      "\[IndentingNewLine]", "]"}], ",", 
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"p", ",", 
         RowBox[{"{", 
          RowBox[{"2", ",", "1"}], "}"}]}], "}"}], ",", "Locator"}], "}"}]}], 
    "]"}]}]}]], "Input",
 Background->RGBColor[
  0.9529411764705882, 0.9529411764705882, 0.9529411764705882],
 CellLabel->"In[15]:=",ExpressionUUID->"90c8ea83-884d-4dda-8ef1-b54257440fa0"],

Cell[BoxData[
 SliderBox[Dynamic[$CellContext`xNear], {0, 3}]], "Output",
 CellLabel->"Out[16]=",ExpressionUUID->"1fcf7ef0-7fba-2749-bb43-6af586685227"],

Cell[BoxData[
 TagBox[
  StyleBox[
   DynamicModuleBox[{$CellContext`p$$ = {2.46, 0.8350000000000001}, 
    Typeset`show$$ = True, Typeset`bookmarkList$$ = {}, 
    Typeset`bookmarkMode$$ = "Menu", Typeset`animator$$, Typeset`animvar$$ = 
    1, Typeset`name$$ = "\"\:65e0\:6807\:9898\"", Typeset`specs$$ = {{{
       Hold[$CellContext`p$$], {2, 1}}, Automatic, ControlType -> Locator}}, 
    Typeset`size$$ = {450., {114., 120.7897332429886}}, Typeset`update$$ = 0, 
    Typeset`initDone$$, Typeset`skipInitDone$$ = True}, 
    DynamicBox[Manipulate`ManipulateBoxes[
     1, StandardForm, "Variables" :> {$CellContext`p$$ = {2, 1}}, 
      "ControllerVariables" :> {}, 
      "OtherVariables" :> {
       Typeset`show$$, Typeset`bookmarkList$$, Typeset`bookmarkMode$$, 
        Typeset`animator$$, Typeset`animvar$$, Typeset`name$$, 
        Typeset`specs$$, Typeset`size$$, Typeset`update$$, Typeset`initDone$$,
         Typeset`skipInitDone$$}, "Body" :> Show[
        Graphics[{Dashed, 
          InfiniteLine[{
            Dynamic[$CellContext`xNear], 0}, {0, 1}]}, 
         PlotRange -> {{-0.1, 3}, {-0.1, 1.5}}, Axes -> True], 
        Graphics[{
          HalfLine[{0, 0}, $CellContext`p$$], Red, 
          PointSize[Large], 
          Point[
           ReplaceAll[{$CellContext`x, $CellContext`y}, 
            $CellContext`IntersectionPoint[$CellContext`p$$]]], Green, 
          Point[{
            Part[$CellContext`p$$, 1], Dynamic[$CellContext`xNear] 
            Part[$CellContext`p$$, 2]/Part[$CellContext`p$$, 1]}]}]], 
      "Specifications" :> {{{$CellContext`p$$, {2, 1}}, Automatic, 
         ControlType -> Locator}}, "Options" :> {}, "DefaultOptions" :> {}],
     ImageSizeCache->{515., {154.91754141980783`, 162.08245858019217`}},
     SingleEvaluation->True],
    Deinitialization:>None,
    DynamicModuleValues:>{},
    SynchronousInitialization->True,
    UndoTrackedVariables:>{Typeset`show$$, Typeset`bookmarkMode$$},
    UnsavedVariables:>{Typeset`initDone$$},
    UntrackedVariables:>{Typeset`size$$}], "Manipulate",
   Deployed->True,
   StripOnInput->False],
  Manipulate`InterpretManipulate[1]]], "Output",
 CellLabel->"Out[17]=",ExpressionUUID->"b14e0425-2221-4c4c-b594-6890c3791661"]
}, Open  ]]
}, Open  ]]
}, Open  ]]
},
WindowToolbars->"EditBar",
WindowSize->{1525.2, 790.8},
WindowMargins->{{0, Automatic}, {Automatic, 0}},
TaggingRules->{"$testsRun" -> False},
TrackCellChangeTimes->False,
Magnification:>1.25 Inherited,
FrontEndVersion->"14.0 for Microsoft Windows (64-bit) (2023\:5e7412\:670812\
\:65e5)",
StyleDefinitions->"Default.nb",
ExpressionUUID->"57a8b213-10c0-0d4b-b952-97a85ba265cd"
]
(* End of Notebook Content *)

(* Internal cache information *)
(*CellTagsOutline
CellTagsIndex->{}
*)
(*CellTagsIndex
CellTagsIndex->{}
*)
(*NotebookFileOutline
Notebook[{
Cell[CellGroupData[{
Cell[580, 22, 86, 0, 85, "Chapter",ExpressionUUID->"df91bc7e-fc03-4383-84e1-2ad57500f54a"],
Cell[669, 24, 190, 4, 62, "Code",ExpressionUUID->"6b0fe850-07f4-4854-8401-247d0e833a1e"],
Cell[CellGroupData[{
Cell[884, 32, 6794, 176, 686, "Input",ExpressionUUID->"493ddc04-195c-4324-9866-458f0779401b"],
Cell[7681, 210, 3966, 80, 630, "Output",ExpressionUUID->"c4893e27-8c2e-c94b-80a5-87500442f101"]
}, Open  ]],
Cell[CellGroupData[{
Cell[11684, 295, 100, 0, 80, "Subchapter",ExpressionUUID->"77b2ae4c-9b67-42b4-9434-707ffbb0573e"],
Cell[11787, 297, 152, 1, 43, "Text",ExpressionUUID->"308ab6c8-2a25-4638-ad12-d785a2af76d2"],
Cell[CellGroupData[{
Cell[11964, 302, 9303, 245, 1127, "Input",ExpressionUUID->"ac9fdf10-ef8f-4b1b-af21-106617937a8e"],
Cell[21270, 549, 5573, 117, 428, "Output",ExpressionUUID->"4f2bce41-d0ef-d944-9ffb-0a127dca3e50"]
}, Open  ]]
}, Open  ]],
Cell[CellGroupData[{
Cell[26892, 672, 99, 0, 80, "Subchapter",ExpressionUUID->"3ee9d62b-7615-404f-8b64-13a860c2c7ab"],
Cell[26994, 674, 71, 0, 43, "Text",ExpressionUUID->"7fbca83c-48c6-4901-9a28-a409230c9fcf"],
Cell[CellGroupData[{
Cell[27090, 678, 14457, 375, 1462, "Input",ExpressionUUID->"83048863-f552-4b40-9159-af3c01ec2394"],
Cell[41550, 1055, 7400, 155, 431, "Output",ExpressionUUID->"7ed6adfe-0b28-6843-a34b-0c3ceafc9a94"]
}, Open  ]],
Cell[CellGroupData[{
Cell[48987, 1215, 4176, 111, 816, "Input",ExpressionUUID->"90c8ea83-884d-4dda-8ef1-b54257440fa0"],
Cell[53166, 1328, 152, 2, 44, "Output",ExpressionUUID->"1fcf7ef0-7fba-2749-bb43-6af586685227"],
Cell[53321, 1332, 2221, 44, 340, "Output",ExpressionUUID->"b14e0425-2221-4c4c-b594-6890c3791661"]
}, Open  ]]
}, Open  ]]
}, Open  ]]
}
]
*)

